jQuery(document).ready(function(){
    var mapObj, mar;  
    function mapInit() {
        mapObj = new AMap.Map("admin_map", { 
            zooms: [5,17]
        });

        //为地图注册click事件获取鼠标点击出的经纬度坐标  
        var clickEventListener=AMap.event.addListener(mapObj,'click',function(e){ 
            var lng = e.lnglat.getLng();
            var lat = e.lnglat.getLat();
            cleanMarker();
            addMarker(lng, lat);
            jQuery("input[name='longitude']").val(lng);
            jQuery("input[name='latitude']").val(lat);
        });
    }

    function cleanMarker(){
        mar && mar.setMap(null);
    }

    function goGeocoding(address) {  
        var MGeocoder;  
        //加载地理编码插件  
        mapObj.plugin(["AMap.Geocoder"], function() {          
            MGeocoder = new AMap.Geocoder({   
                radius:500 //范围，默认：500  
            });  
            //返回地理编码结果   
            AMap.event.addListener(MGeocoder, "complete", geocoder_CallBack);   
            //地理编码  
            MGeocoder.getLocation(address);
        });  
    }    

    //地理编码返回结果展示     
    function geocoder_CallBack(data){  
        //地理编码结果数组  
        var geocode = data.geocodes[0];
        if(geocode){
            cleanMarker();
            endLoc = new AMap.LngLat(geocode.location.getLng(),geocode.location.getLat());
            var markerOption = {  
                map: mapObj,                   
                position: endLoc,
            };

            mar = new AMap.Marker(markerOption);    

            var infoWindow = new AMap.InfoWindow({ 
                autoMove:false,    
            }); 

            var info = [];   
            info.push("<div style=\"padding:0px 0px 0px 0px;\">");    
            info.push("地址 : " + jQuery.trim(jQuery("input[name='address']").val()) + " </div>");   
            infoWindow.setContent(info.join("") );  //在信息窗体中显示新的信息内容 

            var aa = function(e){infoWindow.open(mapObj,mar.getPosition());};    
            AMap.event.addListener(mar, "click", aa);  
            jQuery("input[name='longitude']").val(geocode.location.lng);
            jQuery("input[name='latitude']").val(geocode.location.lat);
            mapObj.setFitView();     
        }
    }

    //实例化点标记  
    function addMarker(lng, lat){  
        mar=new AMap.Marker({                    
            icon:"http://webapi.amap.com/images/marker_sprite.png",  
            position:new AMap.LngLat(lng, lat)  
        });  
        mar.setMap(mapObj);  //在地图上添加点  
    }


    jQuery("#show_marker").click(function(){
        var addr = jQuery.trim(jQuery("input[name='address']").val());
        if(addr.length){
            goGeocoding(addr);
        }
    });

    mapInit();
    var lng = jQuery.trim(jQuery("input[name='longitude']").val());
    var lat = jQuery.trim(jQuery("input[name='latitude']").val());
    if(jQuery.isNumeric(lng) && jQuery.isNumeric(lat)){
        addMarker(lng, lat);
    }
});
